/**
 * LeetCode933：最近的请求次数
 * 通过一个RecentCounter类，计算最近的请求
 * 类中有一个方法ping(int t)，t表示以毫秒为单位的某个时间，
 * 返回从3000毫秒内到现在的ping数，
 * 即处于[t-3000,t]时间内的ping数
 */

var RecentCounter = function (){
    this.q = [];
};

RecentCounter.prototype.ping = function (t){
    //每次发起请求时，将新的请求放入队列
    this.q.push(t);

    //如果队首元素小于t-3000，移出队列
    while(this.q[0] < t - 3000){
        this.q.shift();
    }
    return this.q.length;
};

//时间复杂度：O(n)
//空间复杂度：O(n)